package com.szecsenyi.patterns.observer;

import java.util.ArrayList;
import java.util.List;

import com.szecsenyi.patterns.observer.observer.Observer;
import com.szecsenyi.patterns.observer.server.Observerable;

public class Server implements Observerable {

	List<Observer> observers;

	String statusMessage;

	public Server() {
		observers = new ArrayList<Observer>();
	}

	@Override
	public void notifyObservers() {
		for (Observer o : observers) {
			o.update(statusMessage);
		}
	}

	@Override
	public void registerObserver(Observer o) {
		observers.add(o);
	}

	@Override
	public void removeObserver(Observer o) {
		if (observers.contains(o))
			observers.remove(o);
	}

	public void setStatusMessage(String statusMessage) {
		this.statusMessage = statusMessage;
	}

}
